package com.mathdroid.model.abilities.specs.sniper;

import com.mathdroid.model.abilities.Ability;
import com.mathdroid.model.enums.EDmgType;

public final class CorrosiveDart extends Ability {

	/**
	 * Generated UID.
	 */
	private static final long serialVersionUID = -5260062936678660149L;
	
	public CorrosiveDart() {
		this.setName("Corrosive Dart");
		this.setIconName("toxicdart");
		this.setResource("Energy");
		this.setCost(20d);
		this.setPeriodicDamageType(EDmgType.INTERNAL);
		this.setStandardHealthPercentMax(0.04);
		this.setStandardHealthPercentMin(0.04);
		this.setCoefficient(0.4);
		this.setPeriodicInterval(3000d);
		
		this.setTrainableLevel(5);
	}
	
	@Override
	public String getDescription() {
		return "Fires a dart at the target that deals " 
		+ this.getMinPeriodic() + " internal " +
		"damage over 15 seconds.";
	}

	@Override
	public double getMinPeriodic() {
		return 	
			this.getCoefficient() 
			* this.getCharStats().getTotalBonusDamageTechForce()
		
			+ this.getStandardHealthPercentMin() 
			* this.getStdDmg();
	}

	@Override
	public double getMaxPeriodic() {
		/* The assumption is that min and max are the same, because there
		 * is no weapon damage involved. */
		return this.getMinPeriodic();
	}

	@Override
	public double getMinDirect() {
		return 0d;
	}

	@Override
	public double getMaxDirect() {
		return 0d;
	}

}
